# https://zalinux.ru/?p=334

# Какие есть полезные инструменты с интерфейсом командной строки для системных администраторов Linux

## Сетевые инструменты
### ping: Проверяет end-to-end соединение (задержку времени приёма передачи (RTT), флуктуации, потерю пакетов) удалённого хоста запросами ICMP echo/reply. Полезна для проверки статуса и доступности.

### hping: Сетевой сканер и инструмент тестирования, может генерировать пинг пакеты ICMP/TCP/UDP. Часто используется для продвинутого сканирования портов, тестирования файервола, ручного обнаружения обнаружение MTU маршрута (PMTUD) и тестирования фрагментации.

### traceroute: Определяет путь третьего уровня переадресации из локального хоста к удалённому конечному хосту посредством пакетов зондирования ICMP/UDP/TCP с ограниченным временем жизни (TTL). Полезна для решения таких сетевых проблем как доступность и роутинг.

### mtr: Вариант traceroute который комбинирует функциональность traceroute и ping и отображает статистику. Полезен для характеристики задержек роутинга по всему пути.

### netcat/socat: Это швейцарский нож для TCP/IP сети, позволяет читать/записывать поток байтов на TCP/UDP. Полезен для решения проблем с политиками файервола и доступностью служб.

### dig: Инструмент по решению DNS проблем, который может генерировать прямые запросы, обратные запросы, находить авторитетные сервера имён, проверять CNAME, MX и другие DNS записи. Можно указать для запросов конкретный DNS сервер по вашему выбору.

### nslookup: Другой инструмент проверки/решения проблем с DNS. Работает со всеми DNS запросами и записями. Может делать запросы к конкретному DNS серверу.

### dnsyo: Инструмент тестирования DNS, который проверяет распространение DNS выполняя поиск DNS из ряда открытых резолверов, расположенных по в 1,500 различных сетях по всему миру.

### lsof: Показывает информацию о файлах (например, обычные файлы, трубы или сокеты), которые открыты процессами. Полезно для монитора процессов или пользователей с точки зрения их открытых сетевых соединений или открытых файлов.

### iftop: Основанная на ncurses утилита с основанном на тексте интерфейсом (TUI), которая может быть использована для монитора в реальном времени использования полосы пропускания и сетевых соединений для отдельных сетевых интерфейсов. Полезна для отслеживания пропускной способности загрибущих приложений, пользователей, мест назначений и портов.

### netstat: Утилита статистики сети, которая может показать информацию о статусе и статистику об открытых сетевых соединениях (TCP/UDP портах, IP адресах), таблицах роутинга, переданного/полученного трафика и протоколах. Полезна для связанных с сетью диагностиках и тонкой настройки производительности.

### tcpdump: Популярных инструмент-сниффер пакетов, основанный на библиотеке по захвату пакетов libpcap. Может определять фильтры по захвату пакетов в формате Berkeley Packet Filters.

### tshark: Ещё одна программа-сниффер пакетов командной строки с полной совместимостью со своей коллегой с графическим интерфейсом Wireshark. Поддерживает 1,000 протоколов и этот список продолжает расти. Полезна для решения проблем, анализа и сохранения информации по живым пакетам.

### ip: Разносторонняя утилита командной строки, которая является частью пакета iproute2. Полезна для проверки и модификации таблиц маршрутизации, состояний сетевых устройств и настроек IP туннелирования. Полезна для просмотра таблиц маршрутизации, добавления/удаления статичных маршрутов, настройке сетевых интерфейсов и других функций по решению проблем с маршрутизацией.

### ifup/ifdown: Используется для поднятия или отключения конкретного сетевого интерфейса. Часто предпочтительней альтернативе по перезапуску всего сетевого устройства.

### autossh: Это программа, которая создаёт SSH сессии и автоматически перезапускает сессии, которые должны быть разъединены. Часто полезна для создания постоянного реверсного SSH туннеля между ограниченными корпоративными сетями.

### iperf: Инструмент тестирования сети, который замеряет максимум двунаправленной пропускной способности между парой хостов посредство инъекции настраиваемых потоков данных TCP/UDP между ними.

### elinks/lynx: Основанный на тексте веб-браузер для серверного окружения основанного на командной строке.

Инструменты безопасности
### iptables: Инструмент командной строки пользовательского пространства для настройки файервола ядра Linux. Обеспечивает средства для создания и модификации правил для входящих, транзитных и исходящих пакетов в пространстве ядра Linux.

### nmap: Популярный инструмент по сканированию портов и исследованию сети используется в целях аудита безопасности. Полезен для обнаружения, какие хосты работают в локальной сети, и какие порты открыты для конкретном хосте.

### TCP Wrappers: Хост инструмент сетевого списка контроля доступа (ACL), который может быть использован для фильтрации входящих/исходящих запросов/ответов. Часто используется вместе с iptables как дополнительный уровень безопасности.

### getfacl/setfacl: Просмотр и настройка файлов и директорий списка контроля доступа, в качестве расширений к традиционным файловым разрешениям.

### cryptsetup: Используется для создания и управления зашифрованными дисковыми разделами LUKS.

### VeraCrypt: наследница TrueCrypt. Используется для создания зашифрованных контейнеров. Имеются версии с интерфейсом командной строки и интерфейсом командной строки.

### lynis: Инструмент командной строки сканирования на уязвимости. Может просканировать всю систему Linux и сообщить о потенциальных уязвимостей вместе с возможными решениями.

### maldet: Инструмент командной строки, сканер вредоносного кода, который может обнаружить и поместить в карантин потенциальные заражённые вредоносным кодом файлы. Может быть запущен в фоне в качестве демона для постоянного мониторинга.

### rkhunter/chkrootkit: Инструмент командной строки, который сканирует на потенциальные руткиты, скрытые бэкдоры и подозрительный эксплойты на локальной системе и отключает их.

### getcap/setcap: Убирает необходимость делать многие вещи (вроде ping и traceroute) с setuid рута

## Инструменты для работы с запоминающими устройствами
### fdisk: Инструмент редактирования разделов диска. Используется для просмотра, создания и модификации дисковых разделов на жёстких дисков и съёмных носителях.

### sfdisk: Вариант fdisk, который осуществляет доступ или обновляет разделы таблицы в неинтерактивном режиме. Полезен для автоматизации разбиения диска как части процедуры резервного копирования и восстановления.

### parted: Другой редактор дисковых разделов, который может поддерживать диске больше чем 2TB с GPT (Таблица разделов GUID). Gparted - это GTK+ внешний графический интерфейс parted.

### df: Используется для проверки используемого/доступного места и точек монтирования различных разделов или файловых директорий. Существует dfc — это дружелюбный к пользователю вариант.

### du: Используется для просмотра текущего использования диска связанного с различными файлами и директориями (например, du -sh *).

### mkfs: Команда форматирования диска, используется для построения файловых систем на индивидуальных дисковых разделов. Существует целый ряд специфичых для файловых систем версий mkfs, включая ext2, ext3, ext4, bfs, ntfs, vfat/fat.

### fsck: Инструмент командной строки используемый для проверки файловой системы на ошибки и ремонту где это возможно. Обычно запускается автоматически при загрузке когда необходимо, но также можно вызвать вручную по требованию после размонтирования раздела.

### mount: Используется для составления карты физического дискового раздела, сетевой шары или удалённого хранилища к локальной точке монтирования. Любое чтение/запись в точке монтирования приводит к чтению/записи этих данных на соответствующем фактическом хранилище.

### mdadm: Инструмент командной строки для управления программными RAID устройствами поверх физических блоков устройств. Может создавать, строить, увеличивать или мониторить массивы RAID.

### lvm: Набор инструментов командной строки для управления группами физических/логических томов, который позволяет их создавать, изменять размер, разделять и обрезать томы поверх множества физических дисков с минимальным временем простоя.

### ncdu: Интерактивный ncurses, основанный на du. Отлично подходит для выявления, что потребляет место в файловой системе.

## Инструменты обработки логов
### tail: Используется для слежения за конечной частью (увеличивающегося) файла журнала. Другие варианты включают multitail (многооконный мониторинг) и ztail (поддедржка inotify и regex фильтрации, а также цветов).

### logrotate: Инструмент командной строки, который может разделить, сравнить и отправить по почте старые/большие файлы логов в предварительно заданные интервалы. Полезен для администрирования занятых серверов, которые могут создавать огромные тома лог файлов.

### grep/egrep: Может быть использована для фильтрации содержимого логов по особым образцам или регулярным выражениям. Варианты включают дружелюбный к пользователю ack и более быстрый ag.

### awk: Разносторонний инструмент сканирования и обработки текста. Часто испольузется для извлечения конкретных колонок или полей из текстовых/лог файлов и скармливания результата в другие инструменты.

### sed: Текстовый потоковый редактор, который может фильтровать и преобразовывать (например, удалять строки/пробелы, подставлять/конвертировать слова, добавлять нумерацию) потоки текста и передавать по трубе результат в stdout/stderr или другой инструмент.

## Инструмент резервного копирования
### obnam: Инструмент делает резервные копии. Резервные копии могут быть сохранены на локальный жёсткий диск или онлайн через протоколы SSH SFTP. Сервер резервного копирования, если используется, не требует какого либо специального программного обеспечения кроме SSH.

### rsync: Инструмент быстрого одностороннего инкрементного резервного копирования и создания зеркал. Часто используется для репликации хранилища данных во внешнее хранилище, опционально через безопасное соединение, такое как SSH или stunnel.

### rdiff-backup: Другой инструмент инкрементного резервного копирования, эффективно использующий полосу пропускания. Поддерживает дифференциал двух последовательных снимков (снэпшотов).

### duplicity: Утилита инкрементного зашифрованного резервного копирования. Использует GnuPG для шифрования резервной копии и пересылает на удалённый сервер через SSH.

## Инструменты мониторинга производительности
### top: Программа командной строки для просмотра процессов. Может мониторить системную нагрузку, состояния процессво, использование CPU и памяти. Варианты включают более дружественный к пользователю htop.

### ps: Показывает снимок всех запущенных в системе процессов. Вывод может быть настроен для показа PID, PPID, пользователя, нагрузки, памяти, совокупное время пользователя/системы, время запуска и другое. Варианты включают pstree, которая показывает процессы в виде дерева.

### nethogs: Инструмент мониторинга пропускной способности, которая группирует активные соединения по процессам и сообщает о потреблении пропускной способности (выгрузка/загрузка) для процессов в реальном времени.

### ngxtop: Инструмент для разбора логов доступа веб-сервера и мониторинга, его интерфейс вдохновлён командой top. Он может представить отчёт в режиме реального времени о веб-запросах вместе с их частотой, размером возвращённым кодом HTTP, IP адресом и т.д.

### vmstat: Простой инструмент командной строки, который показывает различные свойства работающей системы, такие как количество процессов, свободная память, статус подкачки, использование CPU, блок активности ввода/вывода, статистика прерывания/переключения контекста и другое.

### iotop: Основанный на ncurses инструмент мониторинга ввода/вывода, который показывает в реальном времени дисковую активность по вводу/выводу всех запущенных процессов в отсортированном порядке.

### iostat: Инструмент командной строки, который сообщает о текущем использовании CPU, а также об использовании устройств ввода/вывода, где использование ввод/вывод (например, скорость передачи блока, скорость чтения/записи байта) сообщаются на основе каждого устройства или каждого раздела.

### sysdig: Универсальный и всеобъемлющий инструмент с открытым исходным кодом для захвата и анализа поведения системы и состояние сервера как в режиме реального времени так и оффлайн режимах.

### htop: Как top, но цветной.

### dstat: Это vmstat+iostat+ifstat и цвет. Я обычно запускаю так 'dstat -cdmsgnpl'.

## Инструменты для повышения производительности труда
### screen: Используется для разделения единого терминала на несколько постоянных виртуальных терминалов, которые также могут быть доступны для удалённых пользователей, например для программ совместного использования экрана вроде teamviewer.

### tmux: Ещё один терминальный мультиплексор, который позволяет несколько постоянных сессий, а также горизонтальное/вертикальное разделение терминала.

### cheat: Простой инструмент командной строки, который позволяет вам иметь под рукой и читать шпаргалки многих популярных команд Linux. Встроенные шпаргалки полностью настраиваемы.

### apropos: Полезна, когда вы ищите man страницы для описания или ключевых слов.

## Инструменты для работы с пакетами
### apt: Де-факто менеджер пакетов для систем на базе Debian, таких как Debian, Ubuntu, Backtrack или эelementary OS. Сберегатель жизни.

### apt-fast: Опорная утилита для apt-get которая позволяет значительно увеличить скорость загрузки apt-get благодаря использованию множества одновременных соединений.

### apt-file: Используется для определения, какие файлы принадлежат .deb пакету или для показа всех файлов в конкретном пакете .deb. Работает как для установленных, так и для неустановленных пакетов.

### dpkg: Утилита командной строки для ручной установки пакетов .deb. Крайне рекомендуется использовать apt когда это только возможно.

### yum: Да-факто автоматический пакетный менеджер для истем основанных на Red Hat, вроде RHEL, CentOS и Fedora. Ещё один сберегатель жизни.

### rpm: Имеет несколько полезных параметров вроде -q, -f, -l, соответственно для запроса, файлов и локаций.

## Аппаратные средства
### lspci: Инструмент командной строки, который показывает различную информацию об установленных PCI устройствах, такую как имя модели, драйвер устройства, возможности, адрес памяти, адрес шины PCI.

### lshw: Инструмент командной строки, который опрашивает и отображает детальную информацию о конфигурации железа в различных категориях (например, процессор, память, материнская плата, сеть, видео, хранилища). Поддерживает множество выводных форматов: html, xml, json, text.

### inxi: Комплексный инструмент аппаратной отчётности, который даёт обзор различных аппаратных компонентов, таких как CPU, графическая карта, звуковая карта, сетевая карта, температура/сенсор вентилятора и т.д.

Если вы хотите порекомендовать другие полезные инструменты, которые здесь не перечислены, то делитесь ими в комментариях.

### lsusb: Утилита, для показа информации об USB шинах в системе и о подключённых к ним устройствах.


